mikeo_410
  1. 1.GAS(google Apps Script)
    1. 1.HowTo - google Apps Script
    2. 2.google Apps Script(ウエブアプリ)
    3. 3.ドキュメント(DocumentApp)
    4. 4.ドキュメント用ツールの作り方

HowTo - google Apps Script

  1. コード.gs

・googleドキュメントで「ツール」「スクリプト エディタ」とすると、コード.gsが作られ、その編集画面になる。

・googleスプレッドシートで「拡張機能」「Apps Script」とすると、コード.gsが作られ、その編集画面になる。

・この操作を行なうと「プロジェクト」と見なされるようになって、プロジェクトの一覧に表示されるようになる。名前は「無題のプロジェクト」となる。

  1. プロジェクト

・プロジェクトの一覧を表示した状態で「+プロジェクトの追加」で「無題のプロジェクト」が作られコード.gs を開いた状態の編集画面となる。

・googleドキュメント、googleスプレッドシート、プロジェクトの追加の3通りの方法でプロジェクトを作った場合、識別はアイコンによる。また、マウスポインタを乗せると「コンテナ」が表示される。プロジェクトの「概要」に「コンテナ」があってgoogleドキュメント、googleスプレッドシートの名前が表示される。

・コンテナがgoogleスプレッドシートの場合は、プロジェクトを開くとスプレッドシートが開くのでコード.gs を編集するには、再び「拡張機能」「Apps Script」とする。

・コンテナがgoogleドキュメントの場合は、プロジェクトを開くとコード.gsの編集画面になる。ドキュメントを開くには、「概要」を開いて「コンテナ」に表示されたドキュメント名をクリックする。

  1. トップのエントリ

・googleドキュメントは、//docs.google.com/、//docs.google.com/document/で一覧が開く。

・googleスプレッドシートは、//docs.google.com/spreadsheets/で一覧が開く。

・プロジェクトの一覧は、//script.google.com/出」開く。

・googleドライブは、//drive.google.com/、//drive.google.com/drive/で開く。

・googleドライブの「新規」メニューがすべてを含むので、googleドライブがトップのエントリで、googleドライブを基礎にしたシステムだと考える。

  1. 配置、フォルダ、ファイル、名前

・一般に、WEBサイトでのファイルの移動は、URLの変更になって、ブラウザ側(利用者)に影響が及ぶ。googleドライブでは、フォルダやファイルは一意のIDで管理され、名前やフォルダの階層に依存しないようになっているようだ。

・また、ファイルは基本的に複合ファイルだと考えられる。コード.gs の編集画面でコードやHTMLファイルを追加するがgoogleドライブでブラウズされない。

・したがって、ディレクトリ階層構造に見せているのはアプリケーションの挙動と考えられる。ファイルは平坦にIDだけで管理している。したがって、ファイル名や「移動」を行ってもIDや実態の移動はないので、複数のアプリケーションで開いている場合には「移動後に、元の場所のファイルを消す」と言ったことが起き、実際にファイルは消されるので不自然に見える。

・googleドキュメント、googleスプレッドシート、プロジェクト(Apps Script)は、こうしたアプリケーションで、ファイルのタイプによって、それぞれ一覧を表示し、ファイル階層を扱わない。唯一それ自体の「移動」ができる。

・googleドキュメント、googleスプレッドシート、プロジェクトはフォルダを指定して作成できず、「移動」によってフォルダに含むことができる。

・こうしたことから、フォルダ名やファイル名は一意である必要がない。

・googleドキュメント、googleスプレッドシートは、画面左上のドキュメントのタイトルの値がgoogleドライブでブラウズされるファイル名となる。

・プロジェクト名も同様だが、googleドキュメント、googleスプレッドシートから自動的に作られたプロジェクトは名前を与える機会がないので「無題のプロジェクト」となる。

  1. WEBアプリケーション

ブラウザでユーザとインタフェースするように、画面をHTMLでデザインしたアプリケーションを作る。これは、HTA(HTML Application)のように、WEBアプリケーションとは限らない。しかし、Apps Scriptは、googleドライブを提供しているサーバの存在を前提としている。

googleドライブのメニューから「Apps Script」を選ぶと「無題のプロジェクト」が作成される。また、googleドキュメント、googleスプレッドシートはスクリプトを使おうとすればプロジェクトになる。プロジェクトの最初の画面は「無題のプロジェクト」のコード.gsの編集画面となる。

WEBアプリケーションを作成する意図でプロジェクトを作成した場合は、コード.gsがサーバサイドスクリプトとなる。

googleドキュメント、googleスプレッドシートにスクリプトを加えるのは、おそらくドキュメントやスプレッドシートを操作するためで、サーバサイドスクリプトの意識はない。
しかし、ドキュメントやスプレッドシートにデータを保持したWEBアプリケーションを作ることができ、サーバにとっては区別はないようだ。

  1. ブラウザサイド・スクリプト

WEBアプリケーションは、利用者がブラウザでURLを開くことで開始される。サーバはHTMLで記述したユーザインタフェースを送る。これには、CSSやJavaScriptが含まれる。

コード.gsの編集画面の左には、「ファイル+」ボタンがあって、コード.gs以外にもファイルが作成できる。このとき「コード」か「HTML」かの選択がある。この選択はファイルの一覧の拡張子の .gsと .htmlに対応する。プログラミング上はこの拡張子は使われない。

 「コード」は、サーバサイドスクリプトで、「HTML」はブラウザサイドスクリプトと言う識別子らしい。

 WEBアプリケーションのURLがリクエストされると、サーバサイドスクリプトの doGet()関数が呼び出され、その記述でHTML記述のユーザインタフェースを返す。例えば、index.html、css.html、js.html を追加し、index.html内にサーバサイドで css.html、js.html を展開して、これを返送する。

 サーバサイドスクリプト(.gs)もブラウザサイドスクリプト(js.html)もJavaScriptと考えて良いが、.gsはサーバのインタプリタが実行し、js.htmlに記述したものはブラウザのインタプリタが実行する。

 したがって、LoggerやHtmlServiceと言ったクラスは、サーバサイドにしか存在しない。

  1. ブラウザが受け取るHTML

実際にブラウザが受け取るHTMLは、googleのHTML内のiframeに表示される形になっている。

  1. サーバサイドスクリプトのトリガ

WEBアプリケーションの場合は、URLがリクエストされると doGet()関数が呼び出される。また、ブラウザサイドスクリプトから、.gsに記述した任意の関数を呼び出す仕組みが用意されている。(google.script.run)

googleドキュメントでドキュメントの編集に使用するスクリプトなら、コード.gsの編集画面で関数を実行すれば良い。もし、繰り返し使用するものなら、onOpen()で menu.addItem() して、ドキュメントの編集画面のツールバーに加える。googleスプレッドシートも同様だと思う。


題目一覧へmikeo_410@hotmail.com(updated: 2022/09/08)